package com.ruoyi.crm.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.crm.domain.*;
import com.ruoyi.crm.mapper.*;
import com.ruoyi.crm.service.ICrmGhService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;
import java.util.UUID;

/**
 * 公海/私海客户信息Service业务层处理
 * 
 * @author ruoyi
 * @date 2023-03-30
 */
@Service
public class CrmGhServiceImpl implements ICrmGhService
{
    @Autowired
    private CrmGhMapper crmGhMapper;
    /*信息话投入 */
    @Autowired
    private CrmInputMapper crmInputMapper;
    /*联系人     */
    @Autowired
    private CrmContMapper crmContMapper;
    /*系统信息     */
    @Autowired
    private CrmGhSysMapper crmGhSysMapper;
    /*跟进记录     */
    private CrmRecMapper crmRecMapper;

    /**
     * 查询公海/私海客户信息
     * 
     * @param id 公海/私海客户信息ID
     * @return 公海/私海客户信息
     */
    @Override
    public CrmGh selectCrmGhById(Long id)
    {
    	return crmGhMapper.selectCrmGhById(id);
    }

    /**
     * 查询公海/私海客户信息列表
     * 
     * @param crmGh 公海/私海客户信息
     * @return 公海/私海客户信息
     */
    @Override
    public List<CrmGh> selectCrmGhList(CrmGh crmGh)
    {
        return crmGhMapper.selectCrmGhList(crmGh);
    }

    /**
     * 新增公海/私海客户信息
     * 
     * @param crmGh 公海/私海客户信息
     * @return 结果
     */
    @Override
    public Integer insertCrmGh(CrmGh crmGh){
//        crmGh.setCreateBy(SecurityUtils.getUsername());
        crmGh.setCreateTime(DateUtils.getNowDate());
        return crmGhMapper.insertCrmGh(crmGh);
    }


    /**
     * 修改公海/私海客户信息
     *
     * @param crmGh 公海/私海客户信息
     * @return 结果
     */
    @Override
    public Integer updateCrmGh(CrmGh crmGh)
    {
        crmGh.setUpdateTime(DateUtils.getNowDate());
        Integer i=crmGhMapper.updateCrmGh(crmGh);
        crmContMapper.insertCrmCont(crmGh.getCrmCont());
        for (CrmInput crmInput:crmGh.getInputs()) {
            if(crmInput.getCreateTime().equals(null)){
                crmGh.setCreateTime(new Date());
            }else{
                crmInput.setUpdateTime(new Date());
            }

            crmInputMapper.insertCrmInput(crmInput);
        }

        return i;
    }
    /**
     * 修改公海/私海客户信息
     * 
     * @param crmGh 公海/私海客户信息
     * @return 结果
     */
    @Override
    public Integer updateConditionById(CrmGh crmGh)
    {
        crmGh.setUpdateTime(DateUtils.getNowDate());
        return crmGhMapper.updateConditionById(crmGh);
    }
    /**
     * 批量删除公海/私海客户信息
     *
     * @param ids 需要删除的公海/私海客户信息ID
     * @return 结果
     */
    @Override
    public int updateConditionByIds(Long[] ids)
    {
        return crmGhMapper.updateConditionByIds(ids,new Date());
    }

    /**
     * 批量删除公海/私海客户信息
     * 
     * @param ids 需要删除的公海/私海客户信息ID
     * @return 结果
     */
    @Override
    public int deleteCrmGhByIds(Long[] ids)
    {
        return crmGhMapper.deleteCrmGhByIds(ids);
    }

    /**
     * 删除公海/私海客户信息信息
     * 
     * @param id 公海/私海客户信息ID
     * @return 结果
     */
    @Override
    public Integer deleteCrmGhById(Long id)
    {
        return crmGhMapper.deleteCrmGhById(id);
    }
}
